package io.in.bufferedinputstream;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

/**
 * 内部维护了一个缓冲区(数组)，默认大小是8192，
 * 也可以指定大小，一般情况下我们不用指定缓存区的大小，
 * 使用默认即可；使用缓存区的好处，减少了IO操作与底层操作系统的调用次数；
 * 从而提高了我们读数据的性能！
 * BufferedInputStream无特有的方法，
 * 因此使用BufferedInputStream和InputStream是一样的；
 */
public class BufferedInputStreamDemo {

    //入口
    public static void main(String[] args) throws IOException {

        //创建BufferedInputStream对象

        BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("G:\\heima\\itheima-hello-git\\Day10\\src\\io\\in\\bufferedinputstream\\text.txt"));

        //读取数据
        //单个字节读取
        /*int read = bufferedInputStream.read();
        System.out.println((char)read);*/
        /*int by = -1;
        while((by = bufferedInputStream.read())!=-1){
            System.out.print((char)by);*/


        //单个数组读取

        byte[] bytes = new byte[5];
        /*bufferedInputStream.read(bytes);
        System.out.println(new String(bytes));*/

        int len = -1;
        while ((len = bufferedInputStream.read(bytes))!=-1){
            System.out.print(new String(bytes) );
        }

        //释放资源
        bufferedInputStream.close();

    }


}

